#include "dialogplonk.h"
#include "ui_dialogplonk.h"
//TODO http://www.siteduzero.com/informatique/tutoriels/programmez-avec-le-langage-c/gestion-des-selections
//TODO http://www.siteduzero.com/forum/sujet/qt-architecture-mvc-recuperer-la-position-de-l-element-57424
DialogPlonk::DialogPlonk(QWidget *parent) :QDialog(parent), ui(new Ui::DialogPlonk)
{
    ui->setupUi(this);
    //liste_users_chiants plonk_list_data=new QStringList;
    //liste_users_chiants=new QStringList();
    model_user_liste_chiants =new QStringListModel(liste_users_chiants,this);

    connect(ui->OK_pushButton,SIGNAL(clicked()),this,SLOT(ok_button()));
    connect(ui->Addbutton,SIGNAL(clicked()),this,SLOT(click_add()));
    connect(ui->removeuser,SIGNAL(clicked()),this,SLOT(click_remove()));
    connect(this,SIGNAL(send_plonklist(QStringList)),this,SLOT(close()));

}

DialogPlonk::~DialogPlonk()
{
    delete ui;
}
void DialogPlonk ::click_add()
{

    if(ui->user_add_text_edit->text()!="pierre_80"||ui->user_add_text_edit->text()!="pierre80")
    {
        //Rajout de l'user saisi dans la string list des users a cacher
        model_user_liste_chiants =new QStringListModel(liste_users_chiants);
        liste_users_chiants.append(ui->user_add_text_edit->text());

        ui->liste_plonk->setModel(model_user_liste_chiants);
        model_user_liste_chiants->setStringList(liste_users_chiants);
    }
    else
    {
        //QMessageBox::information("Vous ne pouvez pas ajouter l'auteur du logiciel",this);
    }
}
void DialogPlonk::remove_user_selected()
{
    
    int position=0;
    //int position=ui->liste_plonk->selectedIndexes();
    select=ui->liste_plonk->selectionModel();

    elementselect = new QModelIndex(select->currentIndex());
    //ui->liste_plonk->currentIndex();//Récupere la position de l'objet selectionné
    position=elementselect->row();
    liste_users_chiants.removeAt(position);
    ui->liste_plonk->setModel(model_user_liste_chiants);
    model_user_liste_chiants->setStringList(liste_users_chiants);
    model_user_liste_chiants->deleteLater();
}
void DialogPlonk::ok_button()
{
    emit send_plonklist(liste_users_chiants);
}

void DialogPlonk::get_list_plonk_list(QStringList plonk)
{
    liste_users_chiants=plonk;
}
void DialogPlonk::click_remove()
{
    int position=0;
    //int position=ui->liste_plonk->selectedIndexes();
    select=ui->liste_plonk->selectionModel();

    elementselect = new QModelIndex(select->currentIndex());
    //ui->liste_plonk->currentIndex();//Récupere la position de l'objet selectionné
    position=elementselect->row();

    liste_users_chiants.removeAt(position);
    model_user_liste_chiants->setStringList(liste_users_chiants);
    ui->liste_plonk->setModel(model_user_liste_chiants);
    //model_user_liste_chiants->deleteLater();
    //ui->liste_plonk->deleteLater();
    emit send_plonklist(liste_users_chiants);

}
